AUX_SOURCE_DIRECTORY(. DIR_LIB_SRCS)

SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

ADD_LIBRARY(Mylib SHARED ${DIR_LIB_SRCS})



# 将库文件，可执行文件，头文件安装到指定目录
# DESTINATION ：要安装的目录
install(TARGETS Mylib # targets为生成的Mylib或者其他lib或者exe等等 
        EXPORT Mylib
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib
        # FILES mymath.h DESTINATION include
        )
set(HEAD_FILES mymath.h )# 后面还可以继续加*.h,如set(HEAD_FILES mymath.h a.h b.h )
#file(GLOB_RECURSE header ./mylib/*.h) 也可以如此将某个目录下的.h文件同一赋值给变量header，后面installheader即可
install(FILES ${HEAD_FILES} DESTINATION include)


# 

# 1. 配置x.cmake，写入库的版本信息(非必须)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
        MylibConfigVersion.cmake # 在build目录下生成
        VERSION ${PACKAGE_VERSION}
        COMPATIBILITY AnyNewerVersion
        )
# 2. 安装这些（即生成）这些x.cmake(必须)
# 将上面配置的库的相关信息输出为MyMathConfig.cmake，供find_package查找，生成MylibTargets.cmake和MylibTargets-debug.cmake
install(EXPORT Mylib
        FILE MylibTargets.cmake
        # NAMESPACE Mylib:: #可以决定是否添加namespace，加了后注意别的用的地方在target_link_libraries要加上
        DESTINATION lib/cmake/Mylib # 
        )
#3. 安装config 需要*.config  # 这里是从build目录下找到MylibConfig并安装到目标位置,config.cmake是find_package必须的
configure_file(MylibConfig.cmake.in MylibConfig.cmake @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/MylibConfig.cmake" # (必须)
                "${CMAKE_CURRENT_BINARY_DIR}/MylibConfigVersion.cmake" #这个不一定是必须的，所以上面的#1 步骤非必须
        DESTINATION lib/cmake/Mylib
        )



